namespace CL_ASSIGN_RETURN_CONST {
	class MyClass {
	public:
		MyClass& operator=(const MyClass&);
	};

	class C {
	public:
		const C& operator=(const C& rhs); // const return type
	};

	void foo(const C& tmpl) {
		C obj;
		(obj = tmpl).someNonConstMethod();
	}


	class C {
	public:
		C& operator=(const C& rhs);
	};

	bool foo(const C& tmpl) {
		C obj;
		(obj = tmpl).someNonConstMethod();
	}
}